home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 2
/
DOS031.dsk
/
MENU.int
< prev
next >
Wrap
Text File
|
2012-02-16
|
2KB
|
41 lines
10 REM ****************************
20 REM * MENU *
30 REM * BY GARY A. FOOTE *
40 REM ****************************
50 TEXT : POKE -16298,0:CALL -936:REM SET TO TEXT MODE
60 POKE 74,0: POKE 75,8: POKE 204,0: POKE 205,8:REM SET LOMEM TO $800
70 DIM A$(120),B$(26),C(26):LM= PEEK (74)+ PEEK (75)*256+5:D$="<CTRL-D>":REM CTL-D
80 B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
90 REM INSERT PROGRAM TO WRITE CATALOG INTO MEMORY AND MOVE TO STRING VARIABLE
100 A$="0300: 38 48 84 00 A0 00 C9 20 B0 02 69 C0 C9 60 B0 02 69 80 C9 80 B0 02 69 40 91 02 E6 02 D0 02 E6 03":GOSUB 1000
110 A$="0320: 68 A4 00 60 A9 A0 60 48 84 00 A0 00 B1 02 91 04 C8 C0 25 D0 F7 A9 1E 91 04 A4 00 68 60":GOSUB 1000
120 POKE 2,0: POKE 3,16
130 POKE 54,0: POKE 55,3: POKE 56,36: POKE 57,3:CALL 1002:REM TURN ON PRINT ROUTINE
140 PRINT D$;"NOMON C,I,O":PRINT D$;"CATALOG"
150 PRINT D$;"PR#0":PRINT D$;"IN#0":REM TURN OFF PRINT ROUTINE
160 REM CATALOG NOW IN MEMORY, CALCULATE NUMBER OF PROGRAMS
170 A= PEEK (2)+ PEEK (3)*256
180 NUM=(A-4096-19)/38
190 REM BUILD MENU
200 CALL -936: POKE 4,LM MOD 256: POKE 5,LM/256
210 POKE 2,0: POKE 3,16:CALL 807: POKE 50,63:PRINT A$(4,18);: POKE 50,255: POKE 2,20:CALL 807:REM TITLE
220 REM IF FIRST FILE IS TEXT, PUT ON TITLE LINE
230 IF A$(2,2)#"T" THEN 240:PRINT " ";A$(8, LEN(A$)):GOTO 250
240 PRINT :PRINT
250 POKE 34,2:Y=4116
260 X=1:FOR Z=1 TO NUM:CALL 807
270 IF A$(2,2)="T" THEN 290:REM DO NOT PRINT TEXT FILES
280 PRINT "[";B$(X,X);"] ";A$(1,2);" ";A$(8, LEN(A$)):C(X)=Y:X=X+1
290 Y=Y+38: POKE 2,Y MOD 256: POKE 3,Y/256
300 IF X<22 THEN NEXT Z: POKE 50,63:PRINT "SELECT BY LETTER";
310 IF Z-1#NUM THEN PRINT " - HIT RETURN FOR MORE";
320 POKE 50,255
330 K= PEEK (-16384):IF K<128 THEN 330: POKE -16368,0:IF K=141 THEN 360:K=K-192:IF K>X-1 OR K<0 THEN 330
340 Y=C(K): POKE 2,Y MOD 256: POKE 3,Y/256:CALL 807:IF A$(2,2)="T" THEN 330:B$=" ":IF A$(2,2)="B" THEN B$="B"
350 POKE 34,0:CALL -936:VTAB 12:PRINT "NOW LOADING ";A$(8, LEN(A$)):PRINT D$;B$;"RUN ";A$(8, LEN(A$))
360 CALL -936:X=1:IF Z-1#NUM THEN 300: POKE 34,0:END
1000 REM MONITOR WRITE ROUTINE
1010 A$( LEN(A$)+1)=" NE88AG": POKE 60,LM MOD 256: POKE 61,LM/256:X= LEN(A$)+LM: POKE 62,X MOD 256: POKE 63,X/256: POKE 66,0: POKE 67,2:CALL -468
1020 POKE 72,0:CALL -144
1030 RETURN